Design programs allow users to produce designs such as word documents, web pages, spreadsheets, and illustrations. Word processors were one of the first design programs to be developed. They have a lineage that traces back to the late 1960s. These programs were generally run on specialized machines. These word processors were expensive, and were only owned by a limited number of large enterprises. Today, word processors are available to the public at large, along with a multitude of other design programs that have come into mainstream usage in the recent past.
The ever increasing access of more and more powerful design programs to an increasing number of people has unlocked a flood of human creativity. The number of publications produced each year is rising at an exponential rate as word processing has brought the power of professional text editing to the masses. The more recent, but no less important, development of visual web page design programs such as Axure RP, a product provided by the Applicant, has likewise dramatically increased society's potential creative output by bringing web page design out of the control of the limited set of persons that are capable of writing code.
The ever increasing degree of access to design programs has fueled an increasing need for interoperability between design programs and the players used to render their designs. However, the need for interoperability is often at odds with the need to offer users as rich and flexible a design program as possible. For example, many of the first word processors only offered users the ability to create a design using a single font. Therefore, rendering this design in another word processor was not an issue because every version of that word processor was guaranteed to utilize that font. Today, the constant drive to enable more creative opportunities has resulted in a situation where even versions of the same word processor are sometimes incapable of rendering a design that was created in that same design program. For example, if one user downloaded a font from the Internet, and applied it to a design before sending the design to another user, the recipient user would be unable to properly render the design even when using the same word processor without downloading that same font from the Internet. This is an even greater problem in the web design space because users expect to be able to appreciate the same end user experience regardless of their choice of web browser. Furthermore, users of web design programs expect a greater degree of flexibility in font selection because those engaged in web design are generally far more concerned with the aesthetics of their designs as compared to those who are using word processors.
Various solutions are available in the related art to deal with the problems caused by the explosion in available fonts and the increasing need for interoperability between designs and players. One solution is the usage of web safe fonts. Web safe fonts are fonts that are generally consider ubiquitous such that it is highly likely that any computer used as a player to render a design with those fonts will have the fonts available to accurately render the design. Another solution is the usage of web fonts. Web fonts are fonts that are readily available for download from the web. As such, theses fonts do not need to be available locally on a player when the player is asked to render a design that utilizes them. Instead, the design includes a pointer that indicates where the font is available. The design can thereby be rendered by obtaining the font from the web using the pointer and applying the font as instructed by the design.
More specific examples of how to address issues with font incompatibility utilize the concept of substitution to replace fonts that the player does not have available. For example, the related art teaches methods of converting PDF documents into HTML 5. The player in this case replaces characters detected in the PDF document by analyzing them and matching them with web fonts that will then render the original design of the PDF. As another example, a program may allow users to replace certain fonts in a design when it is brought into the design program. A user interface for an application is provided that allows a user to specify a font name and a replacement font. Whenever a font that was specified in this user interface is brought in to the application, it is replaced when the design is rendered by the application. This functionality could therefore be used to specify a font that may be missing from the application's library and associate it with a similar font known to the application which could then be used to render a design that utilizes the missing font.